Актуальность
- RSA - один из первых криптографических алгоритмов, предложенный в 1977 году.
- Цифровая подпись RSA имеет широкое практическое применение (защищенные веб-соединения, инфраструктура открытых ключей, электронный документооборот и юридически значимые подписи, подписание ПО и обновлений)
- RSA служит классическим примером для изучения асимметричного шифрования, математических основ криптографии (факторизация больших чисел) и принципов работы цифровых подписей.
Объект и предмет исследования
- Алгоритм подписи и проверки цифровой подписи RSA
Цели и задачи
Сформировать целостное представление о схеме цифровой подписи RSA:
- Описать алгоритм цифровой подписи;
- Выявить уязвимости и методы защиты.
Что такое схема цифровой подписи RSA?
Схема цифровой подписи RSA - механизм, основанный на асимметричном алгоритме RSA (Rivest-Shamir-Adleman). Он позволяет создавать электронную цифровую подпись (ЭЦП), которая подтверждает подлинности и целостность сообщения.
Алгоритм схемы цифровой подписи RSA
Генерация ключей \((e,d,n)\).
Хэш сообщения: \(H(m)\).
Подпись: \(H(m)^{d}mod{n}\)
Передача (\(m,\)подпись).
Проверка.
Алгоритм схемы цифровой подписи RSA. Генерация ключей и хэш сообщения
- Генерация ключей
- Выбираются большие простые числа \(p\) и \(q\).
- Вычисляется модуль \(n=p \cdot q\) и функция Эйлера \(\Psi (n)\).
- Выбирается открытый ключ \(e\) (взаимно простой с \(\Psi (n)\)).
- Находится закрытый ключ \(d\): \(d=e^{-1}(mod \Psi(n)\) .
- Открытый ключ: (\(e,n\)). Закрытый ключ: (\(d,n\)).
- Хэширование сообщения
- Отправитель вычисляет хэш сообщения \(D=H(m)\).
Алгоритм схемы цифровой подписи RSA. Генерация ключей
![]()
Рисунок 1: Пример генерации ключей
Алгоритм схемы цифровой подписи RSA. Подпись и проверка
- Подпись закрытым ключом
- Отправитель шифрует хэш закрытым ключом: \(S = D^{d}mod{n}\).
- Подпись прикрепляется к исходному сообщению.
- Передача данных
- Получатель получает пару: (\(m,S\)).
- Проверка открытым ключом
- Получатель расшифровывает подпись открытым ключом: \(D'=S^{e}mod{n}\).
- Получатель самостоятельно вычисляет \(D\) и сравнивает с \(D'\).
- Если совпадают - подпись действительна.
Алгоритм схемы цифровой подписи RSA. Подпись и проверка
![]()
Рисунок 2: Алгоритм подписи и проверки
Алгоритм схемы цифровой подписи RSA. Подпись
![]()
Рисунок 3: Алгоритм подписи. Пример
Алгоритм схемы цифровой подписи RSA. Проверка
![]()
Рисунок 4: Алгоритм проверки. Пример
Атаки подписи RSA
- Атака только на ключ
- Ева имеет лишь доступ к открытому ключу Алисы. Перехватив пару (\(M,S\)), пытается создать новое сообщение \(M'\), такое что: \[M'=S^{e}mod{n}\]
- Атака при известном сообщении
- Ева использует мультипликативное свойство RSA. Перехватив две пары (\(M_{1}, S_{1}\)) и (\(M_{2}, S_{2}\)), подписанные одним ключом, создает: \[M_{*}=M_{1}\cdot M_{2} mod{n}\] \[S_{*}=S_{1}\cdot S_{2} mod{n}\]
- Атака по выбранному сообщению
- Ева заставляет Алису подписать два легитимных сообщения \(M_{1}\) и \(M_{2}\) (например, под видом документов). Затем создает: \[M_{*}=M_{1}\cdot M_{2} mod{n}\] и утверждает, что Алиса подписала \(M_{*}\)
Выводыы
Было сформировано целостное представление о схеме цифровой подписи RSA.
Вопросы и ответы
Спасибо за внимание!